package cn.shop.admin.service;

import cn.shop.admin.entity.backPermissionModule.BackPermission;
import cn.shop.admin.req.AssignPermissionReq;
import cn.shop.base.MyService;

import java.util.List;

/**
 * 总后台 权限表(BackPermission)表服务接口
 *
 * @author jzw
 * @since 2021-11-08 13:01:51
 */
public interface BackPermissionService extends MyService<BackPermission> {

	/**
	 * 新增数据
	 *
	 * @param permission 实体对象
	 * @return 新增结果
	 * @author jy
	 * @since 2022-01-17 15:47:07
	 */
	Boolean insert(BackPermission permission);

	/**
	 * 修改数据
	 *
	 * @param permission 实体对象
	 * @return 修改结果
	 * @author jy
	 * @since 2022-01-17 15:47:07
	 */
	boolean update(BackPermission permission);

	/**
	 * 分配权限
	 *
	 * @param assignPermissionReq 实体对象
	 * @return 操作结果
	 */
	boolean assignPermissions(AssignPermissionReq assignPermissionReq);

	/**
	 * 查询完整权限树
	 *
	 * @author jzw
	 * @since 2021/11/8 14:02
	 */
	List<BackPermission> allPermissionTree();

	/**
	 * 查询用户的权限树
	 *
	 * @author jzw
	 * @since 2021/11/8 14:02
	 */
	List<BackPermission> allPermissionTreeByUserId(Long userId);

	/**
	 * 获取当前登录用户的权限url
	 *
	 * @param
	 * @return java.util.List<java.lang.String>
	 * @author jy
	 */
	List<String> getAllPermissionUrlByUserId();

	/**
	 * 获取当前登录人的按钮权限信息
	 *
	 * @return java.util.List<java.lang.String>
	 * @author jy
	 */
	List<String> getAllBtnPermissionByUserId();

}

